package com.teradata.olingo.processor.core.api;

import com.sap.olingo.jpa.metadata.api.GenericEdmProvider;
import com.teradata.olingo.processor.core.database.GenericODataDatabaseOperations;
import org.apache.olingo.commons.api.edmx.EdmxReference;
import org.apache.olingo.commons.api.ex.ODataException;
import org.apache.olingo.server.api.debug.DebugSupport;

import java.util.List;

public interface GenericODataSessionContextAccess {
  public GenericODataDatabaseProcessor getDatabaseProcessor();

  public GenericServiceDebugger getDebugger();

  public DebugSupport getDebugSupport();

  public GenericEdmProvider getEdmProvider() throws ODataException;

  public GenericODataDatabaseOperations getOperationConverter();

  public List<EdmxReference> getReferences();

  public GenericCUDRequestHandler getCUDRequestHandler();

  public String[] getPackageName();

  public GenericODataPagingProvider getPagingProvider();
}
